GitHub |
您所在的位置:网站首页 › staking pool › GitHub |
Core contracts
Lockup / Vesting contract
Lockup Factory
Multisig contract
Staking Pool / Delegation contract
Staking Pool Factory
Voting Contract
Whitelist Contract
Building and deploying
See scripts folder for details. Initializing Contracts with near-shellWhen setting up the contract creating the contract account, deploying the binary, and initializing the state must all be done as an atomic step. For example, in our tests for the lockup contract we initialize it like this: pub fn init_lockup( &self, runtime: &mut RuntimeStandalone, args: &InitLockupArgs, amount: Balance, ) -> TxResult { let tx = self .new_tx(runtime, LOCKUP_ACCOUNT_ID.into()) .create_account() .transfer(ntoy(35) + amount) .deploy_contract(LOCKUP_WASM_BYTES.to_vec()) .function_call( "new".into(), serde_json::to_vec(args).unwrap(), 200000000000000, 0, ) .sign(&self.signer); let res = runtime.resolve_tx(tx).unwrap(); runtime.process_all().unwrap(); outcome_into_result(res) }To do this with near shell, first add a script like deploy.js: const fs = require('fs'); const account = await near.account("foundation"); const contractName = "lockup-owner-id"; const newArgs = { "lockup_duration": "31536000000000000", "lockup_start_information": { "TransfersDisabled": { "transfer_poll_account_id": "transfers-poll" } }, "vesting_schedule": { "start_timestamp": "1535760000000000000", "cliff_timestamp": "1567296000000000000", "end_timestamp": "1661990400000000000" }, "staking_pool_whitelist_account_id": "staking-pool-whitelist", "initial_owners_main_public_key": "KuTCtARNzxZQ3YvXDeLjx83FDqxv2SdQTSbiq876zR7", "foundation_account_id": "near" } const result = account.signAndSendTransaction( contractName, [ nearAPI.transactions.createAccount(), nearAPI.transactions.transfer("100000000000000000000000000"), nearAPI.transactions.deployContract(fs.readFileSync("res/lockup_contract.wasm")), nearAPI.transactions.functionCall("new", Buffer.from(JSON.stringify(newArgs)), 100000000000000, "0"), ]);Then use the near repl command. Once at the command prompt, load the script: > .load deploy.jsNote: nearAPI and near are both preloaded to the repl's context. |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |